#ifndef SYNCBASE6RW_H
#define SYNCBASE6RW_H
#include <QtCore/qglobal.h>
#include "csyncbasethread.h"
#include "cmoduleparent.h"

class SyncBase6RW:public CModuleParent
{
public:
	SyncBase6RW();
	~SyncBase6RW();
    //模块管理
    virtual void setModuleMgr(CModuleMgrParent *pMgr);
    //版本
    virtual std::string version();
    //设置配置
    virtual void setConfig(const std::string &sCfg);
    //配置(json格式，提供给web端使用)
    virtual std::string config();
    //启动
    virtual int start();
    //停止
    virtual void stop();
    //枚举测点
    virtual int enumTag(const std::string &addr, unsigned short *nCount);
    //检查格式
    virtual int checkFmt(const std::string &addr);
    //添加测点
    virtual int addTag(const std::string &addr, const int &nType, const unsigned int &cyc);
    //删除测点
    virtual int delTag(const std::string &addr);
    //清除测点
    virtual void clear();
    //读测点值
    virtual CTag* value(const std::string &addr);
    //批量读测点值
    virtual VecPTag values(const VecStr &vecAddr);
    //写测点值
    virtual int setValue(const std::string &addr, CTag *pTag);
    //写测点值
    virtual int setValue(const std::string &addr, CTag& Tag);
    //批量写测点值
    virtual int setValues(const VecStr &vecAddr, VecPTag vecTags);
    //写历史测点值
    virtual int setValueHistory(const std::string &addr, CTag *pTag);
    //写历史测点值
    virtual int setValueHistory(const std::string &addr, CTag& Tag);
    //批量写历史测点值
    virtual int setValuesHistory(const VecStr &vecAddr, VecPTag vecTags);
    //设置日志回调函数
    virtual void setLogRet(LogCallback callback);

private:
	CSyncBaseThread* m_pSyncBaseTh;//SyncBase数据库读写线程
};

#endif // SYNCBASE6RW_H
